<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECMAScript 引用类型</title>
    <script>
        // 引用类型中最常见的就是 类似于Java中的 对象定义 和 Class 概念相近
        /*
        ECMAScript 中的所有对象都由这个对象继承而来，Object 对象中的所有属性和方法都会出现在其他对象中，
        所以理解了 Object 对象，就可以更好地理解其他对象。
        Object 对象具有下列属性：
        constructor
        对创建对象的函数的引用（指针）。对于 Object 对象，该指针指向原始的 Object() 函数。
        Prototype
        对该对象的对象原型的引用。对于所有的对象，它默认返回 Object 对象的一个实例。
        Object 对象还具有几个方法：
        hasOwnProperty(property)
        判断对象是否有某个特定的属性。必须用字符串指定该属性。（例如，o.hasOwnProperty("name")）
        IsPrototypeOf(object)
        判断该对象是否为另一个对象的原型。
        PropertyIsEnumerable
        判断给定的属性是否可以用 for...in 语句进行枚举。
        ToString()
        返回对象的原始字符串表示。对于 Object 对象，ECMA-262 没有定义这个值，所以不同的 ECMAScript 实现具有不同的值。
        ValueOf()
        返回最适合该对象的原始值。对于许多对象，该方法返回的值都与 ToString() 的返回值相同。
        注释：上面列出的每种属性和方法都会被其他对象覆盖。
        */

        // 这里只是一个简单的介绍 其实 prototype 都有广泛的应用 
        function testObject(){
            var  obj = {
                name:"Java",
                age:10,
                address:"HK"
            }
        }

        function testNumber(){

            var oNumberObject = new Number(68);
            var iNumber = oNumberObject.valueOf();
            alert(oNumberObject.toFixed(2));  //输出 "68.00"

            // 根据科学计数法输出  
            var oNumberObject = new Number(68);
            alert(oNumberObject.toExponential(1));  //输出 "6.8e+1" 

            // toPrecision 方法 根据有效数字来
            alert(oNumberObject.toPrecision(1));  //输出 "7e+1"
            alert(oNumberObject.toPrecision(2));  //输出 "68"
            alert(oNumberObject.toPrecision(3));  //输出 "68.0"

        }



    </script>
</head>
<body>
    
</body>
</html>